/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CapadeDatos;

/**
 *
 * @author principal
 */
import java.awt.Image;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import modelo.beandatosalumno;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

//import model.beanarea;




/**
 *
 * @author user
 */
public class DaoDatosAlumno2{
/*
 * Clase donde llamas al procedimiento almacenado y los resultados lo almacenamos
 * en un arraylist de beans que hemos creado anteriormente
 *
 */
  public static Image data;
  public static  beandatosalumno datosalumno(String operacion, String Valor,String Valor2){
            beandatosalumno alumno  = new beandatosalumno();
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Call proc_datosalumno('"+operacion+"', '"+Valor+"','"+Valor2+"')"; // PROCEDIMIENTO ALMACENADO
            ResultSet rs =stm.executeQuery(sql);
            while (rs.next()){
                   alumno.setAlumno_apellido_paterno(rs.getString(1));
                   alumno.setAlumno_apellido_materno(rs.getString(2));
                   alumno.setAlumno_nombres(rs.getString(3));
                   alumno.setAlumno_añonacimiento(rs.getString(4));
                   alumno.setAlumno_mesnacimiento(rs.getString(5));
                   alumno.setAlumno_dianacimiento(rs.getString(6));
                   alumno.setAlumno_codigo(rs.getString(7));
                   alumno.setAlumno_sexo(rs.getString(8));
                   alumno.setAlumno_edad(rs.getString(9));
                   alumno.setResidencia_direccion(rs.getString(10));
                   alumno.setResidencia_lugar(rs.getString(11));
                   alumno.setAlumno_procedencia_ie(rs.getString(12));
                   alumno.setAlumno_procedencia_ubicacion(rs.getString(13));
                   alumno.setAlumno_distrito(rs.getString(14));
                   alumno.setAlumno_provincia(rs.getString(15));
                   alumno.setAlumno_departamento(rs.getString(16));
                   alumno.setAlumno_actividadlaboral(rs.getString(17));
                   alumno.setAlumno_rettrans_fecha(rs.getString(18));            
                   alumno.setAlumno_rettrans_observacion(rs.getString(19));
                   alumno.setAlumno_DNI(rs.getString(20));
                   alumno.setAlumno_Carrea(rs.getString(21));
                   alumno.setResidencia_numero(rs.getString(22));
                   byte[] b = rs.getBytes(23);
                   data = ConvertirImagen(b);
                   alumno.setImagen(data);
        }        
    }catch(Exception e){System.out.print(e);
   }return alumno;
   }

      public static  Boolean updatefotoalumno(String foto,String codigo){
    Boolean exito = false;
    FileInputStream fis = null;
         try{
            File file = new File(foto);
            fis = new FileInputStream(file);
            Connection cn = ConexionBD.getInstance().getConnection();
            PreparedStatement pstm = cn.prepareStatement("Update alumno set foto = ? where alumno.cod_alumno = ?");
            pstm.setString(2,codigo);
            pstm.setBinaryStream(1, fis,(int) file.length());
            pstm.execute();
            pstm.close();
            exito = true;
        }catch(Exception e){System.out.print(e);}
    return exito;
    }

   //metodo que dada una cadena de bytes la convierte en una imagen con extension jpeg
 public static Image ConvertirImagen(byte[] bytes) throws IOException {
    ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
    Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
    ImageReader reader = (ImageReader) readers.next();
    Object source = bis; // File or InputStream
    ImageInputStream iis = ImageIO.createImageInputStream(source);
    reader.setInput(iis, true);
    ImageReadParam param = reader.getDefaultReadParam();
    return reader.read(0, param);
 }
}




